package com.alg.test;

import java.util.Random;

/**
 * @author Li
 * @Date 2023/4/18 18:40
 */
public class BubblingSearch {
    public static void main(String[] args) {
        /**
         * 冒泡排序
         * {5,4,3,2,1}
         *i=0第一次比较 4,3,2,1,5 比较次数 array.length-1-0
         *i=1第一次比较 3,2,2,4,5 比较次数 array.length-1-1(1=i)
         *i=2第一次比较 2,1,3,4,5 比较次数 array.length-1-1-1(2=i)
         *i=3第一次比较 1,2,3,4,5 比较次数 array.length-1-1-1-1(3=i)
         */

//        int[] array = {5,4,3,2,1};
      int [] array =  getArr(10);
      getMarry(array);

    }


    /**
     * 获得一个大小为size的随机数组
     * @param size
     * @return
     */
    private static int[] getArr(int size) {
        int[] arr = new int[size];
        Random random = new Random();
        for (int i = 0; i <arr.length ; i++) {
            arr[i] = random.nextInt(size);
        }
        printArray(arr);
        return arr;
    }

    /**
     * 打印出随机数组
     * @param arr
     */
    private static void printArray(int[] arr) {
        for (int i = 0; i <arr.length ; i++) {
            if (i==arr.length-1){
                System.out.print(arr[i]+",");
            }else {
                System.out.print(arr[i]+" ");
            }

        }
    }

    /**
     * 进行冒泡排序
     * @param array
     * @return
     */
    private static int[] getMarry(int[] array) {
        int temp = 0;
        for (int i = 0; i <array.length-1 ; i++) {
            for (int j = 0; j <array.length-1-i ; j++) {
                if (array[j]>array[j+1]){
                    temp = array[j+1];
                    array[j+1] = array[j];
                    array[j] = temp;
                }

            }

        }
        printArray(array);
        return array;
    }
}
